#pragma once
#include "VC_Drawable.h"
#include "VC_GameState.h"

class C_FSM :
	public VC_Drawable
{
private:
	std::stack<VC_GameState*> m_states;
	VC_GameState*	m_changeState;
	bool			m_isChange;
public:
	C_FSM();
	virtual ~C_FSM();

	virtual void handleEvent(sf::Event e);
	virtual void render();
	virtual void update();

	void setChangeState(VC_GameState* s) { m_changeState = s; m_isChange = true; }

	void push(VC_GameState* state);
	void change(VC_GameState* state);
	void pop();
};

